home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Linux Cubed Series 2: Applications
/
Linux Cubed Series 2 - Applications.iso
/
hamradio
/
tnos-2.000
/
tnos-2
/
README
< prev
next >
Wrap
Text File
|
1996-07-21
|
6KB
|
175 lines
Building the source tree in either DOS or Unix is nearly identical.
There ARE a few prerequisites, though...
DOS: A Borland compiler - both 3.0 and 3.1 are known to work
Others SHOULD compile, but no promises!
Unix: TCL (tclsh)
GCC compiler (probably works with others)
GNU make (might work with others)
Complete header files (for Linux, this means that the
Kernel sources need to be installed)
The actual compile is as easy as 1-2-3.........
1) Set up for proper makefile...
DOS: premake.bat
(Sets up for proper makefile, and creates dummy make.inc and
depend files)
Unix: premake
(Sets up for proper makefile, and runs build-make.inc)
Other functions may be added to the premake scripts at a later time.
2) [Optional step] Site-specific configuration
This customization should NOT include editing the Makefile.
Instead, all customizations should be placed in a file
named 'make.inc', which will be included within the Makefile's
processing, and commands in make.inc will be treated the same
as if they were in the Makefile. This way ALL changes specific
to your site are in make.inc, and will not have to be RE-DONE
when you upgrade to later releases of TNOS.
Edit the make.inc to your needs. Anything that you WOULD change
in the Makefile, instead override it in make.inc by including it
in make.inc.
For example, if you wish to use a different directory for installing
TNOS other than the default of '/nos' (or '\nos' for MSDOS), you
could add a new NOSDIR (and NOSDIRSTR, for MSDOS) line in make.inc.
For example, if you wanted to change the default directory (under
DOS) to '\tnos' add 'NOSDIR=c:\tnos' and 'NOSDIRSTR=c:/tnos'
to the make.inc file.
MSDOS NOTE: Backslashes must be used for NOSDIR and forward slashes
used for NOSDIRSTR.
Please consult the Makefile for what things you COULD change in
make.inc, what values are valid, and what affect certain changes
might have on other items. COnsider the Makefile as the reference
for make.inc changes.
All changes/additions to the make.inc file should be made NOW, before
moving to the next step.
3) Make it....
make doeverything
Can't make it any easier!
NOTE: the 'make' utility MAY be named something different than 'make' on
your system, depending on the compiler, etc. For instance, some DOS users may
need to use Borland's real mode make 'MAKER' and BSD users have GNU's make
named 'gmake'. I can't help you here, it should be named 'make' ;-)
The compiles SHOULD be clear of errors and warnings. UNIX NOTE: If the
SETSTACK default (as set up in the Makefile) is used, there will be ONE
warning in ksubr.c (about variable `stktop'). This warning is harmless, and
will ALWAYS occur if SETSTACK is not being used.
-------------------------------------------------------------------------
There are some special notes below for BSD/OS compilation.
[author's note: Some of this is obsolete, but it retained at this time.
There is a 'make.inc-BSDI' file, which SHOULD set your environment up
correctly, without needing to edit the makefile.]
-------------------------------------------------------------------------
Notes for BSD/OS implementation
This is to be regarded as a test implementation - some minor
problems, possibly related to the odd compiler warning or two -
are present. It is based upon BSD/OS 2.0 with patches; earlier
versions have not been tested. It is stable i.e. has not crashed
(yet), but still needs to be hammered.
* It is possible that some of my changes are the same as those done
by Kirk Davis VE6KIK, especially since I viewed his source, but
I declare that they were developed independently. I hereby
acknowledge Kirk for his assistance in getting my port working
in the first place.
* I'm still not happy with the UUCP locking - needs further work
wrt UID and GID (and I'm not enthusiastic about a root-owned
program rampaging around my system - this is my production box)
- currently it is merely setgid-dialer to access the serial ports.
Note that UUCP locking is not the same as Linux. I'll probably
end up creating a "nos" user or something, so it's firewalled.
* Some changes need to be made to "makefile.unx" - see later.
* I thoroughly recommend the "Electric Fence" malloc debugging
package by Bruce Perens; it enabled me to find a lingering problem
with SIGSEGVs, which turned out to be an incorrect line in
domain.txt (an errant SOA line, to be precise). As with bugs
of this nature, it didn't crash right away, but instead clobbered
something else... (No, I didn't fix the getline() bug.)
Be aware that Electric Fence DOES slow down the system, and use
significantly MORE virtual memory, so it should be used only when
hunting down problems, not in day-to-day usage.
OK, here is what you have to do to "makefile.unx" to see how I
made the BSD/OS version:
1) No support for ELF. You need:
#USEELF = 1
USEELF =
#MAKEELF = 1
MAKEELF =
2) Static linking (LTYPE = -static) is default, but won't hurt.
3) You might want to use "gcc2" instead of the default (whichever
it is).
4) The "INSTALL" is different; BSD/OS has protection for the serial
ports. This needs more work wrt uid/gid, cus I'm paranoid...
I make it setgid to "dialer" at the moment, and spawn it from my
own UID; a later mod will have it running under its own UID. I
also changed the UUCP directory to have GID "dialer".
Old: INSTALL= install -c
New: INSTALL= install -c -g dialer -m 2755
5) BSD/OS needs IS_LITTLE_ENDIAN, USE_SETSTACK, BSD_RANDOM.
6) Also SETSTACK= setsp.o
7) BSD/OS doesn't come with NCURSES - get 1.8.5, until 1.9.x stabilises.
You also need:
ICURSES = -I/usr/local/include/ncurses
LCURSES = -lncurses
8) Debugging is different:
DEBUG = -g
DBGLIB = # -lefence
9) You might also want to turn off optimising whilst debugging:
CFLAGS = $(LTYPE) -DUNIX $(DEBUG) $(PATCHES) $(WARNINGS) $(ICURSES) $(VERS)
10) Send abuse if this doesn't work.
-- Dave Horsfall VK2KFU dave@esi.com.au
(dave@vk2kfu.ampr.org won't work just yet)